Method and apparatus for storing an interactive television program

ABSTRACT

A method and device for storing an interactive television program for playback at a later point in time, wherein said interactive television program comprises at least one interactive television application. The applications are transmitted inside modules ( 11, 12 ) through a data carousel ( 2 ) within a transport stream ( 20 ). The method comprises receiving the transport stream, parsing the stream for application modules and storing them as a storage stream on a storage medium ( 31 ). The storage stream is stored separate from said transport stream ( 20 ). The data or object carousel is recorded outside the Transport Stream and recorded like a stream, preferably as a single file. This file is a sequence of modules with some header information preceding the modules making playback faster as the information needed to obtain the objects from a module is located directly in the header of that module. Furthermore, the solution according to the invention solution is platform independent.

This invention relates in general to the field of interactive televisionand more particularly to the recording of interactive television contentand even more particularly to the recording of interactive televisionapplications.

Interactive television (iTV) is becoming more and more popular. Anexample of interactive television is the Multimedia Home Platform (MHP),which is a digital video broadcasting (DVB) standard intended to combinedigital television (DTV) with interactivity and access to the Internetand the World Wide Web. DTV service providers offer a large variety ofaudio-visual (A/V) television programs and also of applications thatallow the interaction of the viewer/user with the TV set and itscontent. In digital video broadcast systems a broadcaster can broadcastapplications together with the video in a MPEG2 transport stream (TS).These types of applications can be run on digital television receivers,such as Set Top Boxes (STB) and allow a viewer to interact with thevideo. Examples of these applications are Electronic Program Guides,Betting applications, T-Commerce etc. For these types of applications torun the receiving device must support the interactive TV platform (iTV)for which the application was designed. Examples of interactive TVplatforms are MHP, MEG-5, Dase, Liberate, OpenTV. Some of theseplatforms are proprietary and some are open standards such as MB, MHEG-5and Dase.

Interactive television content, such as MHP, transmits applications in aTransport Stream (TS) inside modules through a Digital Storage MediaCommand and Control (DSMCC) object carousel. The DSMCC-Modules aretransmitted in the same TS as the audio/video content. The DSMCCdata/object carousel defines how and when to send modules/filescontaining applications in the TS together with the audio-visual contentdown a broadcast channel. There is no connection to the server for areceiving device to ask for wanted files. All files are repeatedly sentall the time, e.g. once every 10 seconds. Interactive televisionterminals, e.g. MHP terminals, such as a Set Top Box (STB), look for thefiles they need as they come around.

More specifically, the applications are broadcast in the MPEG2 transportstream in a protocol that provides an open distributed object computingarchitecture. This protocol is called DSMCC U-U (Digital Storage MediaCommand and Control User to User) and it is based on Corba (CommonObject Request Broker Architecture). This protocol sits on top of theabove mentioned protocol called the DSMCC Data carousel. This carouselprovides a transport mechanism that allows a server to present a set ofdata modules by cyclically repeating the content of the modules one ormore times.

Similar to today's video recorders for analogue television broadcastsusing video tapes for recording broadcast streams, digital videorecorders for interactive television are developed using either aharddisk or removable media such as optical discs for storing recordedbroadcasts. The digital video recorders for interactive televisionrecord both A/V television content and applications for playback at alater point in time.

When recording interactive television, iTV modules/files are extractedfrom the Transport Stream. These modules are generally stored outsidethe Transport Stream in separate files. In some cases the stored modulesare re-inserted into the Transport Stream for playback over a digitalinterface to an external STB with an MHP stack.

The previously mentioned transmission standards are designed for accessto applications and files in a broadcast case. When the application andthe files it uses are stored on a storage medium, such as a disk, aspart of a recording, the information contained in the transmissionparameters is lost. Also the file format of the various standardsdiffer, so providing a recording and playback solution for one standarddoes not necessarily work for another standard. Therefore a need existsfor an iTV recording solution that is as generic and effective aspossible so that it will work for many interactive TV standards.

In WO 01/33852 A1 a method is disclosed for recording of pushedinteractive data of a program. Data is received from a data streamcomprising a data carousel. The data stream is parsed and data objectscomprised in the data carousel are retrieved and stored as files on amass storage device. A data carousel is always stored as a whole datacarousel, either as a single file or as separate files for theindividual data objects. When the objects in the carousel change, a newfile or set of files is started for the new carousel. Furthermore, aheader is saved with the file consisting of an carousel ID and version,as well as starting and ending times of the entire carousel. Thedisclosed method has the drawback that an entire carousel has to beavailable when recording. Furthermore, recording of the modules cannotstart before the last module is extracted from the transport stream.This has the disadvantage that it is necessary to wait until all themodules are extracted from the transport stream. Implementation is thuscomplicated and expensive, as large buffers are required. Additionallythe described art has a major disadvantage regarding playbackperformance because the entire carousel has to be loaded to a largebuffer before playing back the interactive application. This may involvean inconvenient time delay and expensive large buffers are needed.

According to the invention, the above problems are solved as follows.When recording the MHP application the application files are storedseparately from the transport stream. These files are transmitted in theDSMCC carousel in BIOP (Broadcast Interoperability Protocol) messages.There are different types of these messages. One type of these messagesmay be used to transmit a directory structure and another message may beused to send a file. These messages are in turn encapsulated in DSMCCdata carousel modules.

For finding the files the DSMCC protocol defines special controlmessages which are transmitted in the MPEG2 private sections. There aretwo types of control messages, one is the DSI (Download Server Initiate)message and the other is the DII (Download Info Indication) message. TheDSI message defines the Service Gateway info. This contains the objectreferences for finding the broadcast objects or files in the carousel.The DSI contains a profile body for the top-level directory of thecarousel, i.e. the service gateway. The profile body contains referencesto the location of an object and a reference to the DII message of themodule that contains the object. The DII message contains deliveryparameters of the module that contains the object.

According to the invention, the DSMCC Object Carousel is recordedoutside the Transport Stream and recorded like a stream. The result isthat the DSMCC Object Carousel is recorded in a single file on thestorage medium, e.g. a disc. This file is a sequence of modules withsome header information preceding the modules. The DSMCC object carouselis thus recorded outside the stream, but still recorded like a stream.Playback is thus faster as the information needed to obtain the objectsfrom a module is located directly in the header of that module. There isno need to parse the information for all the modules to find theinformation for a particular module, which would be the case with onesingle information file. Furthermore, the solution according to theinvention is platform independent.

The present invention has the advantage over the prior art that itgenerates one single file which is a concatenation of modules, i.e. thedata carousel objects, with a description of the module content as aheader attached to the start of each module in the before mentionedfile. Recording of the modules can thus start when the first module isextracted from the transport stream, there is no need to wait until allthe modules are extracted from the stream. This makes implementationstraightforward and requires small buffers, i.e. buffers for just onemodule instead for all modules of a carousel to be recorded.Additionally the present invention improves playback performance asloading of the interactive application is possible to start as soon asthe first module is processed.

Hence, the present invention overcomes the above-identified deficienciesin the art and solves the above problems by providing a method, a systemand a computer readable medium according to the appended patent claims.

According to one aspect of the invention, a method of storing aninteractive television program for playback at a later point in time isprovided. The interactive television program comprises interactivetelevision applications, and these applications are transmitted insidemodules through a data carousel within a transport stream. The methodcomprises the following steps. First, the transport stream is received.Then the transport stream is parsed for application modules.Subsequently the application modules are stored as a storage stream on astorage medium, wherein the storage stream is stored separated from saidtransport stream.

According to another aspect of the invention, there is provided anapparatus, which is adapted for storing an interactive televisionprogram and which is adapted for playback of said interactive televisionprogram at a later point in time. The interactive television programcomprises interactive television applications, wherein said applicationsare transmitted inside modules through a data carousel within atransport stream. The apparatus comprises receiving means for thetransport stream, parsing means for parsing the transport stream forapplication modules, and storing means for storing the applicationmodules as a storage stream on a storage medium. The storage stream isstored separated from the transport stream by the storing means.Furthermore, the mentioned means of the apparatus are operativelyconnected to each other.

According to yet another aspect of the invention, a computer-readablemedium is provided. The medium has embodied thereon a computer programfor processing by a computer. The computer program is a program forstoring an interactive television program for playback at a later pointin time, wherein said interactive television program comprisesinteractive television applications. These applications are transmittedinside modules through a data carousel within a transport stream. Thecomputer program comprises the following code segments: a first codesegment for receiving the transport stream, a second code segment forparsing the transport stream for application modules, and a third codesegment for storing the application modules as a storage stream on astorage medium. The code segments further instruct the computer to storesaid storage stream separated from said transport stream.

Further objects, features and advantages of the invention will becomeapparent from the following description of embodiments of the presentinvention, reference being made to the accompanying drawings, in which

FIG. 1 is a schematic diagram over an iTV recording system in recordingmode, applying the method of the invention,

FIG. 2 is a flowchart illustrating an embodiment of a method accordingto the invention,

FIG. 3 is a diagram showing an exemplary file structure of an iTVstorage stream stored according to an embodiment of the invention,

FIG. 4 is a schematic diagram showing an embodiment of the deviceaccording to the invention,

FIG. 5 is a schematic diagram showing the computer readable mediumaccording to the invention, and

FIG. 6 is a schematic diagram over an iTV recording system in playbackmode.

FIG. 1 shows a schematic overview over an iTV recording system 1 inrecording mode, applying the method of the invention. Interactivetelevision content, such as MHP, transmits applications in a TransportStream (TS) inside modules through a Digital Storage Media Command andControl (DSMCC) object carousel 2. Audio-visual content is transmittedin the same TS inside modules through a DSMCC data carousel. Interactivetelevision content, such as MHP, is transmitted over a digital interface20, such as in a Transport Stream (TS), inside modules 12 through aDigital Storage Media Command and Control (DSMCC) object carousel 2.Audio-visual content is transmitted in the same TS 20. Arrow 10indicates the rotation of objects 11 in the carousel over time. The TS20 is received by a recording device 30, such as an MHP video recorder.Recording device 30 comprises a storage medium 31 on which files/objects32 are recorded from the TS.

According to the invention, the DSMCC Object Carousel is recordedoutside the Transport Stream and recorded like a stream. According to apreferred embodiment of the invention, the DSMCC Object Carousel isrecorded in a single file 7 on the storage medium 31, e.g. a recordableDVD, CD, or a harddisk in a STB or an interactive television recorder.This file 7 is created as a sequence of modules 73, 74, 75, . . . , withsome header information 70, 71, 72, . . . , preceding the modules, asillustrated in FIG. 3. The DSMCC object carousel is thus recordedoutside the stream, but still recorded like a stream. A stream is inthis context defined as a continuous sequence of data objects, such asfiles or application modules, said sequence having a first data objectand a finite number of subsequent data objects.

More specifically, during recording the incoming DSMCC Object carouselis parsed and redundancy is preferably removed. For each moduleextracted from the carousel of the TS, a header is generated, whereinthe header at least contains:

the version number of the module, such as a module ID,

the time the module was finished loading from the stream (using PCR(Program Clock Reference) timestamps from the MPEG stream),

the Directories and objects contained in the module, pointers to theobjects located in the module, and

a pointer to the start of the next module header in the stream, oralternatively the length of the module.

Also the file preferably contains entries for stream events. Theseconsist of a short header followed by the stream event information. Theheader contains thus a point to the length of the stream event entry andthe time in the stream when the event was received or for scheduledevents the time when the event should occur.

The structure of the stored file, such as file 7, is built up duringrecording. Preferably the header of the first module 70 contains the DSImessage. The DSI message indicates the root of the carousel. When theDSI message changes then this is an indication that a new set of modulesis transmitted. When the version of one module changes then this doesnot change the DSI message. Therefore, when a new DSI is received, a newmodule file is generated. When the version of one module changes thenthe new version of that module is added to the modules file. Thegenerated header of this new version of the module will indicate that itis a new version because the new module will have the same module ID asthe earlier version of that module. The module 73 placed at the start ofthe file preferably contains the directory objects directly locatedunder the Service Gateway (the top-level directory). The header 71 forthe second module 74 will reference the directory- and file objectslocated under the one from the first module and so forth for all theother modules 75, . . . . In this way it is easier during playback tore-create the structure in the info file in memory. Thus, parsing allthe modules a second time is avoided.

Additionally this approach has the advantage that the DSMCC ObjectCarousel can be treated like a stream and incrementally recorded ondisc. There is no need to cache the complete Object Carousel in order togenerate a complete header at the start of the file before starting torecord it to disc.

According to another embodiment of the invention, the DSI controlmessage is extracted from the carousel during recording. The DSI, aswell as the DII messages are preferably retrieved directly from theMPEG2 private sections filter. The DSI contains the top-level directoryalso referred to as the service gateway. From the DSI the BIOP profilesare parsed and stored in the MHP info file as the top branches of thetree. Typically these profiles will refer to objects that containdirectory Messages. These directory messages contain BIOP (BroadcastInteroperability Protocol) profiles for the underlying objects. TheseBIOP profiles are stored under the directory node in the MHP info file.This process continues until all the BIOP profiles refer to file orstream event objects. When this happens, the bottom of the tree isreached. A reference to the module where the file is located is thusadded to the BIOP profile.

According to another embodiment of the invention FIG. 4 shows a device 8for storing an interactive television program and for playback at alater point in time. The interactive television program comprises atleast one interactive television application, which is transmittedinside modules through a data carousel within a transport stream.Preferably the carousel is a DSMCC data/object carousel. Device 8comprises receiving means 81 for receiving the transport stream 80,parsing means 82 for parsing the transport stream for applicationmodules comprised in transport stream 80, storing means 83 for storingsaid application modules as a storage stream 84 on a storage medium 85.Hereby the storage stream 84 is stored separate from said transportstream by said storing means 83. Means 81, 82 and 83 are operativelyconnected to each other.

The stored data 84 is played back with a means 85 for playing back saiddata inside modules through a DSMCC Data/Object Carousel over saiddigital interface and from said storage medium 85. This will bedescribed below in more detail in connection with FIG. 6.

According to another aspect of the invention as illustrated in FIG. 5,there is provided a computer-readable medium 9 having embodied thereon acomputer program for processing by a computer 90. The computer programstores an interactive television program for playback at a later pointin time, wherein said interactive television program at least comprisesone interactive television application being transmitted inside modulesthrough a data carousel within a transport stream. The computer programcomprises a first code segment 91 for receiving the transport stream, aswell as a second code segment 92 for parsing the transport stream forapplication modules, and a third code segment 93 for storing saidapplication modules as a storage stream on a storage medium. Hereby thestorage stream is stored separated from said transport stream by thethird code segment 93.

When the file, which was stored according to the above description, isread into memory for playback, the data is preferably restructured tobuild up a directory tree from the individual headers. Preferably, adatabase is created in memory from all the headers. In this way theinformation is used to easily find a required file on a disc. This isless efficient than having a separate MHP info file because all headerparts of the modules have to be read. However, in practice most, andprobably all, module information will be cached in memory. Generatingthe equivalent of the MHP info file on playback is therefore easilyaccomplished, preferably as describe above.

FIG. 6 is a schematic overview over an iTV recording system 3 inplayback mode. Files/modules 32 from the, according to FIG. 1, recordedinteractive television content, are transferred from storage medium 31,to a DSMCC object carousel 4, as indicated by arrow 40. As shown in FIG.1, the files/modules and audio-visual content are broadcast via adigital interface 45, such as in a Transport Stream (TS), inside modulesthrough the DSMCC object carousel 4. Arrow 10 indicates the rotation ofobjects 11 in the carousel over time. The TS 45 is received by areceiving device 50, such as a Set Top Box (STB).

The present invention has been described above with reference tospecific embodiments. However, other embodiments than the abovedescribed are equally possible within the scope of the appended claims,e.g. different carousel structures, file structures, performing theabove method by hardware or software, etc.

Furthermore, the term “comprising” does not exclude other elements orsteps, the terms “a” and “an” do not exclude a plurality and a singleprocessor or other unit may fulfil the functions of several of the unitsor circuits recited in the claims.

Also, it will be apparent to a person skilled in the art that the words‘transport stream’ cover a Transport Stream as well as a Program Streamas methods of transfer or broadcast of data like audio-visual data.

In summary, the invention relates to method and device for storing aninteractive television program for playback at a later point in time,wherein said interactive television program comprises at least oneinteractive television application. The applications are transmittedinside modules (11, 12) through a data carousel (2) within a transportstream (20), preferably a MPEG 2 stream. The method comprises receivingthe transport stream, parsing the transport stream for applicationmodules and storing the application modules as a storage stream on astorage medium (31). The storage stream is stored separated from saidtransport stream (20). The data carousel (2) may be a Digital StorageMedia Command and Control (DSMCC) carousel. The DSMCC Object Carousel isrecorded outside the Transport Stream and recorded like a stream,preferably as a single file. This file is a sequence of modules withsome header information preceding the modules. The DSMCC object carouselis thus recorded outside the stream, but still recorded like a stream.Playback is thus faster as the information needed to obtain the objectsfrom a module is located directly in the header of that module.Furthermore, the solution according to the invention solution isplatform independent.

1. A method of storing an interactive television program on a storagemedium for playback at a later point in time, said interactivetelevision program comprising at least one interactive televisionapplication, said applications being transmitted inside modules througha data carousel within a transport stream, said method comprising thesteps of: receiving said transport stream; parsing the transport streamfor application modules; generating respective headers for the parsedapplication modules; and storing, by incrementally recording, saidapplication modules as a concatenation of modules in a single filehaving a structure that is built up during recording, without waitingfor the completion of the parsing the transport stream for applicationmodules, wherein the single file comprises a storage stream, whereinsaid storage stream is stored outside of and separately from saidtransport stream, and wherein the single file as the storage streamcomprises a sequence of stored application modules, each storedapplication module being preceded by the generated respective header,each generated respective header comprising storage information on atleast the subsequent application module, wherein each of said generatedrespective headers comprises at least: a version number of the module, atime the module was finished loading from the transport stream,directories and objects contained in the module, pointers to the objectslocated in the module, and a pointer to the start of the next moduleheader in the stream.
 2. A method according to claim 1, wherein saiddata carousel is a DSMCC data/object carousel.
 3. The method as claimedin claim 1, wherein said method further comprises the step of: removingredundancy in said carousel before storing said application modules. 4.The method as claimed in claim 1, wherein the module placed at the startof the file contains directory objects directly located under atop-level directory and the header for the second module referencesdirectory- and file objects located under the first module.
 5. Themethod as claimed in claim 1, wherein said method further comprises thesteps of: extracting a Download Server Initiate (DSI) message from thecarousel; and storing said DSI message at least in the header of thefirst module of said storage stream.
 6. The method as claimed in claim1, wherein said transport stream is an MPEG2 transport stream.
 7. Themethod as claimed in claim 5, wherein said transport stream is an MPEG2transport stream, and wherein said DSI message is extracted from anMPEG2 private sections filter from said MPEG2 transport stream.
 8. Themethod as claimed in claim 1, wherein the storage medium is an opticaldisk.
 9. An apparatus for storing an interactive television program on astorage medium, and for playing back said stored interactive televisionprogram at a later point in time, said interactive television programcomprising at least one interactive television application, saidapplications being transmit inside modules through a data carouselwithin a transport stream, wherein said apparatus comprises: a receiverfor receiving said transport stream; a parser for parsing the transportstream for application modules; means for generating a respective headerfor each parsed application module; and storing means for storing, byincrementally recording, said application modules as a concatenation ofmodules in a single file having a structure that is built up duringrecording, without waiting for the completion of parsing the transportstream for application modules, wherein the single file comprises astorage stream, whereby said storage stream is stored on said storagemedium outside of and separately from said transport stream by saidstoring means, and wherein said single file comprises a sequence ofstored application modules, each stored application module beingpreceded by the generated respective header, and each generatedrespective header comprising storage information on at least thesubsequent application module, wherein each of said generated respectiveheaders comprises at least: a version number of the module, a time themodule was finished loading from the transport stream, directories andobjects contained in the module, pointers to the objects located in themodule, and a pointer to the start of the next module header in thestream.
 10. A non-transitory computer-readable storage medium havingembodied thereon a computer program for processing by a computer,enabling storing of an interactive television program on a storagemedium, and playing back of the stored interactive television program ata later point in time, wherein said interactive television programcomprises at least one interactive television application beingtransmitted inside modules through a data carousel within a transportstream, the computer program comprising code segments for causing thecomputer to: receive said transport stream, parse the transport streamfor application modules, generate a respective header for each parsedapplication module, and store, by incrementally recording, saidapplication modules as a concatenation of modules in a single filehaving a structure that is built up during recording, without waitingfor the completion of parsing the transport stream for applicationmodules, wherein the single file comprises a storage stream, wherebysaid storage stream is stored on said storage medium outside of andseparately from said transport stream, and wherein said single filecomprises a sequence of stored application modules, each storedapplication module being preceded by the generated respective header,and each generated respective header comprising storage information onat least the subsequent application module, wherein each of saidgenerated respective headers comprises at least: a version number of themodule, a time the module was finished loading from the transportstream, directories and objects contained in the module, pointers to theobjects located in the module, and a pointer to the start of the nextmodule header in the stream.